home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / libblas / tbmv.z / tbmv
Encoding:
Text File  |  1998-10-30  |  21.9 KB  |  331 lines

  1.  
  2.  
  3.  
  4. ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))                                                ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      dtbmv, stbmv, ztbmv, ctbmv, dtbsv, stbsv, ztbsv, ctbsv - BLAS Level Two
  10.      Matrix-Vector Product  and  Solution of System of Equations.
  11.  
  12.  
  13. FFFFOOOORRRRTTTTRRRRAAAANNNN 77777777 SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddttttbbbbmmmmvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  15.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ddddttttbbbbssssvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  16.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg
  17.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx
  18.            ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn   aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****))))
  19.  
  20.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssttttbbbbmmmmvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  21.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssttttbbbbssssvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  22.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg
  23.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx
  24.            rrrreeeeaaaallll               aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****))))
  25.  
  26.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzttttbbbbmmmmvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  27.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzttttbbbbssssvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  28.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg
  29.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx
  30.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****))))
  31.  
  32.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ccccttttbbbbmmmmvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, aaaa,,,, kkkk,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  33.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ccccttttbbbbssssvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, aaaa,,,, kkkk,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  34.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg
  35.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx
  36.            ccccoooommmmpppplllleeeexxxx            aaaa(((( llllddddaaaa,,,,****)))),,,, xxxx((((****))))
  37.  
  38.  
  39. CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  40.      vvvvooooiiiidddd ddddttttbbbbmmmmvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  41.      vvvvooooiiiidddd ddddttttbbbbssssvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  42.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  43.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee       ttttrrrraaaannnnssss;;;;
  44.            MMMMaaaattttrrrriiiixxxxUUUUnnnniiiittttTTTTrrrriiiiaaaannnngggguuuullllaaaarrrr  ddddiiiiaaaagggg;;;;
  45.            IIIInnnntttteeeeggggeeeerrrr               nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx;;;;
  46.            ddddoooouuuubbbblllleeee                ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]];;;;
  47.  
  48.      vvvvooooiiiidddd ssssttttbbbbmmmmvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  49.      vvvvooooiiiidddd ssssttttbbbbssssvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  50.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  51.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee       ttttrrrraaaannnnssss;;;;
  52.            MMMMaaaattttrrrriiiixxxxUUUUnnnniiiittttTTTTrrrriiiiaaaannnngggguuuullllaaaarrrr  ddddiiiiaaaagggg;;;;
  53.            IIIInnnntttteeeeggggeeeerrrr               nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx;;;;
  54.            ffffllllooooaaaatttt                 ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]];;;;
  55.  
  56.      vvvvooooiiiidddd zzzzttttbbbbmmmmvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  57.      vvvvooooiiiidddd zzzzttttbbbbssssvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  58.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  59.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee       ttttrrrraaaannnnssss;;;;
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))                                                ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))
  71.  
  72.  
  73.  
  74.            MMMMaaaattttrrrriiiixxxxUUUUnnnniiiittttTTTTrrrriiiiaaaannnngggguuuullllaaaarrrr  ddddiiiiaaaagggg;;;;
  75.            IIIInnnntttteeeeggggeeeerrrr               nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx;;;;
  76.            ZZZZoooommmmpppplllleeeexxxx               ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]];;;;
  77.  
  78.      vvvvooooiiiidddd ccccttttbbbbmmmmvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  79.      vvvvooooiiiidddd ccccttttbbbbssssvvvv(((( uuuupppplllloooo,,,, ttttrrrraaaannnnssss,,,, ddddiiiiaaaagggg,,,, nnnn,,,, kkkk,,,, aaaa,,,, llllddddaaaa,,,, xxxx,,,, iiiinnnnccccxxxx ))))
  80.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee        uuuupppplllloooo;;;;
  81.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee       ttttrrrraaaannnnssss;;;;
  82.            MMMMaaaattttrrrriiiixxxxUUUUnnnniiiittttTTTTrrrriiiiaaaannnngggguuuullllaaaarrrr  ddddiiiiaaaagggg;;;;
  83.            IIIInnnntttteeeeggggeeeerrrr               nnnn,,,, kkkk,,,, llllddddaaaa,,,, iiiinnnnccccxxxx;;;;
  84.            CCCCoooommmmpppplllleeeexxxx               ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****xxxx))))[[[[ nnnn ]]]];;;;
  85.  
  86.  
  87.  
  88. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  89.      ddddttttbbbbmmmmvvvv, ssssttttbbbbmmmmvvvv, zzzzttttbbbbmmmmvvvv and ccccttttbbbbmmmmvvvv perform one of the matrix-vector operations
  90.  
  91.            x := A*x,   or   x := A'*x,   or   x := conjg( A' )*x,
  92.  
  93.      where x is an n element vector and A is an n by n unit, or non-unit,
  94.      upper or lower triangular band matrix, with ( k + 1 ) diagonals.
  95.  
  96.      ddddttttbbbbssssvvvv, ssssttttbbbbssssvvvv, zzzzttttbbbbssssvvvv and ccccttttbbbbssssvvvv solve one of the systems of equations
  97.  
  98.            A*x = b,   or   A'*x = b,   or   conjg( A' )*x = b,
  99.  
  100.      where b and x are n element vectors and A is an n by n unit, or non-unit,
  101.      upper or lower triangular band matrix, with ( k + 1 ) diagonals.  No test
  102.      for singularity or near-singularity is included in these routines. Such
  103.      tests must be performed before calling these routines.
  104.  
  105.  
  106. PPPPAAAARRRRAAAAMMMMEEEETTTTEEEERRRRSSSS
  107.      uuuupppplllloooo    On entry, uuuupppplllloooo specifies whether the matrix is an upper or lower
  108.              triangular matrix as follows:
  109.  
  110.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  111.                   uplo = 'U' or 'u'        A is an upper triangular matrix.
  112.                   uplo = 'L' or 'l'        A is a lower triangular matrix.
  113.  
  114.                   CCCC
  115.                   uplo = UpperTriangle     A is an upper triangular matrix.
  116.                   uplo = LowerTriangle     A is a lower triangular matrix.
  117.  
  118.              Unchanged on exit.
  119.  
  120.      ttttrrrraaaannnnssss   On entry, ttttrrrraaaannnnssss ssssppppeeeecccciiiiffffiiiieeeessss tttthhhheeee ooooppppeeeerrrraaaattttiiiioooonnnn ttttoooo bbbbeeee
  121.  
  122.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  123.                   trans = 'N' or 'n'       x := A*x /  A*x = b.
  124.                   trans = 'T' or 't'       x := A'*x / A'*x = b.
  125.                   trans = 'C' or 'c'       x := conjg( A' )*x  /
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))                                                ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))
  137.  
  138.  
  139.  
  140.                                                 conjg( A' )*x = b.
  141.  
  142.                   CCCC
  143.                   trans = NoTranspose           x := A*x /  A*x = b.
  144.                   trans = Transpose             x := A'*x / A'*x = b.
  145.                   trans = ConjugateTranspose    x := conjg( A' )*x  /
  146.                                                     conjg( A' )*x = b.
  147.  
  148.              For real value matrices, ttttrrrraaaannnnssss='C' and ttttrrrraaaannnnssss='T' has the same
  149.              meaning.
  150.  
  151.              Unchanged on exit.
  152.  
  153.      ddddiiiiaaaagggg    On entry, ddddiiiiaaaagggg specifies whether or not A is unit triangular as
  154.              follows:
  155.  
  156.                   FFFFOOOORRRRTTTTRRRRAAAANNNN
  157.                   diag = 'U' or 'u'   A is assumed to be unit triangular.
  158.                   diag = 'N' or 'n'   A is not assumed to be unit triangular.
  159.  
  160.                   CCCC
  161.                   diag = UnitTriangular    A is assumed to be unit
  162.                                            triangular.
  163.                   diag = NotUnitTriangular A is not assumed to be unit
  164.                                            triangular.
  165.  
  166.              Unchanged on exit.
  167.  
  168.      nnnn       On entry, nnnn specifies the order of the matrix A. nnnn must be at
  169.              least zero.
  170.              Unchanged on exit.
  171.  
  172.      kkkk       On entry, with uuuupppplllloooo ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr UUUUppppppppeeeerrrrTTTTrrrriiiiaaaannnngggglllleeee , kkkk specifies
  173.              the number of super-diagonals of the matrix A.
  174.  
  175.              On entry with uuuupppplllloooo ==== ''''LLLL'''' oooorrrr ''''llll'''' oooorrrr LLLLoooowwwweeeerrrrTTTTrrrriiiiaaaannnngggglllleeee , kkkk specifies
  176.              the number of sub-diagonals of the matrix A.
  177.  
  178.              kkkk must satisfy  0 .le. k.
  179.  
  180.              Unchanged on exit.
  181.  
  182.      aaaa       An array containing the matrix A.
  183.  
  184.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  185.              Array of dimension ( lda, n ).
  186.  
  187.              CCCC
  188.              A pointer to an array of size lda*n containing the matrix A.
  189.              See note below about array storage convention for C.
  190.  
  191.              Before entry with uuuupppplllloooo ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr UUUUppppppppeeeerrrrTTTTrrrriiiiaaaannnngggglllleeee , the
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))                                                ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))
  203.  
  204.  
  205.  
  206.              leading ( k + 1 ) by n part of the array aaaa must contain the upper
  207.              triangular band part of the matrix of coefficients, supplied
  208.              column by column, with the leading diagonal of the matrix in row
  209.              ( k + 1 ) of the array, the first super-diagonal starting at
  210.              position 2 in row k, and so on. The top left k by k triangle of
  211.              the array aaaa is not referenced.  The following Fortran program
  212.              segment will transfer an upper triangular band matrix from
  213.              conventional full matrix storage to band storage:
  214.  
  215.                                DO 20, J = 1, N
  216.                                   M = K + 1 - J
  217.                                   DO 10, I = MAX( 1, J - K ), J
  218.                                      A( M + I, J ) = matrix( I, J )
  219.                             10    CONTINUE
  220.                             20 CONTINUE
  221.  
  222.              Before entry with uuuupppplllloooo ==== ''''LLLL'''' oooorrrr ''''llll''''oooorrrr LLLLoooowwwweeeerrrrTTTTrrrraaaaiiiinnnngggglllleeee , the leading
  223.              ( k + 1 ) by n part of the array aaaa must contain the lower
  224.              triangular band part of the matrix of coefficients, supplied
  225.              column by column, with the leading diagonal of the matrix in row
  226.              1 of the array, the first sub-diagonal starting at position 1 in
  227.              row 2, and so on. The bottom right k by k triangle of the array aaaa
  228.              is not referenced. The following Fortran program segment will
  229.              transfer a lower triangular band matrix from conventional full
  230.              matrix storage to band storage:
  231.  
  232.                                DO 20, J = 1, N
  233.                                   M = 1 - J
  234.                                   DO 10, I = J, MIN( N, J + K )
  235.                                      A( M + I, J ) = matrix( I, J )
  236.                             10    CONTINUE
  237.                             20 CONTINUE
  238.  
  239.              Note that when ddddiiiiaaaagggg ==== ''''UUUU'''' oooorrrr ''''uuuu'''' oooorrrr , the elements of _a
  240.              corresponding to the diagonal elements of the matrix A are not
  241.              referenced either, but are assumed to be unity.
  242.  
  243.              Unchanged on exit.
  244.  
  245.      llllddddaaaa     On entry, llllddddaaaa specifies the first dimension of A as declared in
  246.              the calling (sub) program.  llllddddaaaa must be at least max( 1, n ).
  247.              Unchanged on exit.
  248.  
  249.      xxxx       Array of size at least ( 1 + ( n - 1 )*abs( incx ) ). Before
  250.              entry, the incremented array xxxx must contain the vector x. On
  251.              exit, xxxx is overwritten with the transformed/solution vector x.
  252.  
  253.      iiiinnnnccccxxxx    On entry, iiiinnnnccccxxxx specifies the increment for the elements of xxxx.
  254.              iiiinnnnccccxxxx must not be zero.
  255.              Unchanged on exit.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))                                                ____TTTTBBBBMMMMVVVV,,,,____TTTTBBBBSSSSVVVV((((3333FFFF))))
  269.  
  270.  
  271.  
  272. CCCC AAAARRRRRRRRAAAAYYYY SSSSTTTTOOOORRRRAAAAGGGGEEEE CCCCOOOONNNNVVVVEEEENNNNTTTTIIIIOOOONNNN
  273.        The matrices  are assumed  to be stored in a  oooonnnneeee ddddiiiimmmmeeeennnnssssiiiioooonnnnaaaallll CCCC aaaarrrrrrrraaaayyyy
  274.        in an analogous fashion as a Fortran array (column major). Therefore,
  275.        the element  A(i+1,j)  of matrix A  is stored  immediately  after the
  276.        element  A(i,j), while  A(i,j+1) is lda  elements apart from  A(i,j).
  277.        The element A(i,j) of the matrix can be accessed directly by reference
  278.        to  a[ (j-1)*lda + (i-1) ].
  279.  
  280.  
  281. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  282.           Jack Dongarra, Argonne National Laboratory.
  283.           Iain Duff, AERE Harwell.
  284.           Jeremy Du Croz, Numerical Algorithms Group Ltd.
  285.           Sven Hammarling, Numerical Algorithms Group Ltd.
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.